const express = require('express');
const cors = require('cors');
const dotenv = require('dotenv');

// 加载环境变量
dotenv.config();

// 导入自定义模块
const config = require('./config');
const logger = require('./middleware/logger');
const mcpRoutes = require('./routes/mcpRoutes');
const jsonRpcRoutes = require('./routes/jsonRpcRoutes');

// 创建Express应用
const app = express();
const port = config.server.port;

// 中间件
app.use(cors());
app.use(express.json());
app.use(logger);

// 基本路由
app.get('/', (req, res) => {
  res.json({ 
    message: 'MCP Server is running',
    version: config.mcp.version,
    serverId: config.mcp.serverId,
    environment: config.server.env
  });
});

// MCP 相关路由
app.use('/mcp', mcpRoutes);

// JSON-RPC 2.0 路由
app.use('/jsonrpc', jsonRpcRoutes);

// 404处理
app.use((req, res) => {
  res.status(404).json({ 
    status: 'error', 
    message: '请求的资源不存在' 
  });
});

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error('服务器错误:', err.stack);
  res.status(500).json({ 
    status: 'error',
    message: '服务器内部错误' 
  });
});

// 启动服务器
app.listen(port, () => {
  console.log(`
  ===================================
    MCP Server 已启动
    端口: ${port}
    环境: ${config.server.env}
    版本: ${config.mcp.version}
    支持: JSON-RPC 2.0 (/jsonrpc)
  ===================================
  `);
}); 